﻿using System;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002D0 RID: 720
	public class TExceptionHandler : TParseTreeNode
	{
		// Token: 0x1700051D RID: 1309
		// (get) Token: 0x06001832 RID: 6194 RVA: 0x00329054 File Offset: 0x00327254
		// (set) Token: 0x06001833 RID: 6195 RVA: 0x0032905C File Offset: 0x0032725C
		public virtual TObjectNameList ExceptionNames
		{
			get
			{
				return this.exceptionNames;
			}
			set
			{
				this.exceptionNames = value;
			}
		}

		// Token: 0x1700051E RID: 1310
		// (get) Token: 0x06001834 RID: 6196 RVA: 0x00329065 File Offset: 0x00327265
		public virtual TStatementListSqlNode Stmts
		{
			get
			{
				return this.stmts;
			}
		}

		// Token: 0x06001835 RID: 6197 RVA: 0x0032906D File Offset: 0x0032726D
		public override void init(object arg1, object arg2)
		{
			if (arg1 != null)
			{
				this.exceptionNames = (TObjectNameList)arg1;
			}
			if (arg2 != null)
			{
				this.stmts = (TStatementListSqlNode)arg2;
			}
		}

		// Token: 0x06001836 RID: 6198 RVA: 0x00329090 File Offset: 0x00327290
		public override void doParse(TCustomSqlStatement psql, ESqlClause plocation)
		{
			if (this.stmts != null)
			{
				this.stmts.doParse(psql, plocation);
				for (int i = 0; i < this.stmts.size(); i++)
				{
					this.Statements.add(this.stmts.getStatementSqlNode(i).Stmt);
				}
			}
		}

		// Token: 0x1700051F RID: 1311
		// (get) Token: 0x06001837 RID: 6199 RVA: 0x003290E4 File Offset: 0x003272E4
		// (set) Token: 0x06001838 RID: 6200 RVA: 0x003290FF File Offset: 0x003272FF
		public virtual TStatementList Statements
		{
			get
			{
				if (this.statements == null)
				{
					this.statements = new TStatementList();
				}
				return this.statements;
			}
			set
			{
				this.statements = value;
			}
		}

		// Token: 0x06001839 RID: 6201 RVA: 0x00329108 File Offset: 0x00327308
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x0600183A RID: 6202 RVA: 0x00329118 File Offset: 0x00327318
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			if (this.ExceptionNames != null)
			{
				this.ExceptionNames.acceptChildren(v);
			}
			this.Statements.acceptChildren(v);
			v.postVisit(this);
		}

		// Token: 0x0400185E RID: 6238
		private TStatementListSqlNode stmts;

		// Token: 0x0400185F RID: 6239
		private TObjectNameList exceptionNames;

		// Token: 0x04001860 RID: 6240
		private TStatementList statements;
	}
}
